iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0
IT Operation

從前後端踏上 AWS 雲端架構勇者之路系列 第 10 篇

Subnet 沒指定路由表,資料會往哪走?

  • 分享至 

  • xImage
  •  

前幾篇我們從家裡的網路一路走到 AWS

為了讓大家多瞭解整個全貌,可以看以下圖片,藍色區塊主要是網路範圍、紫色是路由、橘色則是安全規則

網友怎麼連到你的網站?IGW 附掛在 VPC,Subnet 使用路由表,Security Group 決定誰能連主機的哪些 Port

這裡也幫大家整理一下

篇目 講了什麼/要解決什麼 對照圖中的哪裡
前面章節講了 從家裡的網路認識內部 IP、公有 IP,還有 /16、/24 這種位址範圍的寫法 VPC、Subnet 旁的 IP 範圍,以及主機的公有 IPv4,還有 IGW 基本介紹
今天要講 Subnet 到底使用哪張路由表?沒指定怎麼辦?兩行路由都符合時怎麼選? 右邊紫色的路由表,以及它和 Subnet 之間的虛線
後續會接著分享 路開通後的連線規則,要怎開 Port、允許哪些來源? 橘色的 Security Group,以及 TCP 443

昨天先認識「主機放在哪個網路」,今天來繼續分享「資料照哪張表、往哪裡走」,後面我們再來處理「哪些連線可以通過」~

右邊的 路由表(Route Table) 是決定資料往哪裡送。紫色虛線表示「Subnet 使用這張表」,資料不會先穿過右邊那張表才到主機

圖裡的「送往哪裡」,就是 AWS Console 的 Target(目標) 欄位。local 表示是走 VPC 內部路徑,IGW 表示交給 Internet Gateway

今天主要重點來分享下 Internet Gateway

Internet Gateway 介紹

VPC 是你在 AWS 上劃出來的一塊網路

這裡從自己建立、還沒設定 Internet 連線的 VPC 開始。要讓裡面的主機直接透過公有 IPv4 連到 Internet,需要一個 Internet Gateway,後面就簡稱 IGW

IGW 就是 VPC 的門口。你建立好一個後,AWS 會給它一個編號,長得像 igw-0a1b2c3d4e5f67890,然後把它掛到 VPC 上

然後接下來還要告訴 Subnet 往哪裡走,所以還要在它使用的路由表寫一行,告訴 AWS「要去外面的,走這個 IGW 位置」:

Destination Target
0.0.0.0/0 igw-0a1b2c3d4e5f67890

官方用「實際使用的路由表,有沒有直接通往 IGW 的路由」來分 Public 和 Private Subnet。本篇的 Public Subnet 就是用上面這一行通往 IGW(官方定義)

那有這條路,外面的人就能打開網站了嗎?還沒哩,以這裡的 IPv4 連線為例,主機還要有公有 IPv4、安全規則允許連線,程式也要在對應的 Port 接收請求

那如果沒指定路由表,會怎樣?

建立 VPC 時,AWS 會自動建立一張 main route table(主路由表)。

那建立 Subnet 時,如果沒有另外指定,它就會自動使用這張 main,不會出現「完全沒有路由表」(官方說明)

所以你可以先建立 Subnet,再把它關聯到需要的路由表

假設我們只建立一個 10.0.0.0/16 的 VPC,還沒增加其他路由,main 裡面只有這一行:

Destination Target
10.0.0.0/16 local

local 是 VPC 內部的路由。在這個範例裡,使用這張表的 Subnet 只有內部路徑,此時就沒有通往 Internet 的路由

本篇範例:前兩個 Subnet 明確關聯到指定的路由表,第三個未指定而使用 main;此範例的 main 只有 local

所以,假設你開了一台機器,IGW 裝了、公有 IP 也有,卻連不出去,可能是 Subnet 正在用一張只有 local 的表

所以建立 Subnet 後,確認它用對的表,而且表裡有需要的路由才是 ok 的~

一張路由表,實際上也能好幾個 Subnet 一起用

你在一張共用的表加了 0.0.0.0/0 → IGW,所有使用這張表的 Subnet 都會一起取得這條 Internet 路由,包含你原本只想保留內部路徑的那些,例如放資料庫的。至於裡面的主機能不能連上,還要看前面提到的其他條件,所以共用時也要小心點 冏

如果只有網站所在的 Subnet 需要這條路,另一個要維持只有 local,可以另外準備一張有 IGW 路由的表,只改網站 Subnet 關聯的路由表會比較保險一點。其他 Subnet 繼續用原本那張,就不會跟著被改到

改前兩個 Subnet 都使用只有 local 的 main;改後只有網站 Subnet 關聯到有 IGW 路由的 rt-public,另一個仍用 main,兩張表的內容都沒變

小結

最後小結一下:

重點 記住這句
IGW 掛在哪 掛在 VPC 上;可以不掛,同一時間最多一個
路由表給誰用 Subnet 關聯路由表,表裡的路由決定資料往哪送
沒指定路由表 自動用 main route table,實際走法要看它裡面的路由,沒寫就是預設~

希望這篇有讓你對 Subnet 跟 IGW 有更深入的瞭解,我們下篇見 :D


上一篇
兩個子網路長得一樣,為什麼只有一個能對外?
下一篇
Security Group:連進來、連出去,我跳進來啦,我又跳出去啦~
系列文
從前後端踏上 AWS 雲端架構勇者之路 共 12 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言